package com.wang.jmonkey.modules.task.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.wang.jmonkey.modules.task.model.entity.SystemTaskEntity;
import com.wang.jmonkey.modules.task.model.query.SystemTaskQuery;

/**
 * 定时任务配置表(SystemTask)表服务接口
 *
 * @author HeJiawang
 * @since 2021-07-26 16:51:27
 */
public interface SystemTaskService extends IService<SystemTaskEntity> {

    /**
     * 分页查询信息
     * @param query 分页查询条件
     * @return 定时任务信息
     */
    PageInfo<SystemTaskEntity> page(SystemTaskQuery query);

    /**
     * 校验任务类是否可用
     *  1、任务类存在
     *  2、任务类未被使用
     * @param task task
     * @return true 存在并未被使用，false不存在或已被使用
     */
    boolean checkClassName(SystemTaskEntity task);

    /**
     * 暂停定时任务
     * @param task 任务信息
     * @return true 暂停成功
     */
    boolean pause(SystemTaskEntity task);

    /**
     * 恢复定时任务
     * @param task 任务信息
     * @return true 恢复成功
     */
    boolean resume(SystemTaskEntity task);

    /**
     * 立即执行定时任务
     * @param task 任务信息
     * @return true 任务调用成功
     */
    boolean startNow(SystemTaskEntity task);

    /**
     * 启动所有定时任务
     */
    void startAllTask();
}
